package com.hk.mybatis.query;

import lombok.*;

/**
 * 查询条件类
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QueryCondition {
    /**
     * 查询属性
     * -- GETTER --
     * 获取查询属性
     *
     * @return {@link String} 返回查询属性
     */
    private String property;

    /**
     * 是否关联表字段
     */
    @Builder.Default
    private boolean isFk = false;

    /**
     * 查询条件操作符
     * -- GETTER --
     * 获取条件操作符
     *
     * @return {@link String} 返回条件操作符
     */
    private String operator;

    /**
     * 查询值
     * -- GETTER --
     * 获取查询值
     *
     * @return {@link Object} 返回查询值
     */
    private Object value;

    /**
     * 起始值，用于BETWEEN操作符
     * -- GETTER --
     * 获取起始值
     *
     * @return {@link Object} 返回起始值，用于BETWEEN操作符
     */
    private Object begin;

    /**
     * 终止值，用于BETWEEN操作符
     * -- GETTER --
     * 获取终止值
     *
     * @return {@link Object} 返回终止值，用于BETWEEN操作符
     */
    private Object end;

    /**
     * 构造方法
     *
     * @param property {@link String} 查询条件
     * @param operator {@link String} 查询条件操作符
     * @param value    {@link String} 查询值
     */
    public QueryCondition(String property, String operator, Object value) {
        this.property = property;
        this.operator = operator;
        this.value = value;
    }
}